var _n75;
var cc__extends = __extends;
var cc__decorate = __decorate;
var cc__importDefault = __importDefault;
Object.defineProperty(exports, "__esModule", {
  value: true
});
var $1$RankMgr = require("RankMgr");
var s = cc__importDefault($1$RankMgr);
var $zqcc_OverallSystem = require("zqcc_OverallSystem");
var $1$zqcc_pageBase = require("zqcc_pageBase");
var l = cc__importDefault($1$zqcc_pageBase);
var cc__decorator = cc._decorator;
var ccp_ccclass = cc__decorator.ccclass;
var ccp_property = cc__decorator.property;
var def_selectArea = function (t) {
  function _ctor() {
    // 优化后的代码
    let optimizedInstance = null !== t && t.apply(this, arguments) || this; // 使用let替代var，提高可读性
    optimizedInstance.content = null; // 初始化content
    optimizedInstance.diquObjPrefab = null; // 初始化diquObjPrefab
    optimizedInstance.RankMgrScript = null; // 初始化RankMgrScript
    optimizedInstance.data = null; // 初始化data
    optimizedInstance.curSelectDiQu = null; // 初始化curSelectDiQu
    optimizedInstance.curSelectDiQuData = null; // 初始化curSelectDiQuData
    optimizedInstance.pageData = null; // 初始化pageData
    return optimizedInstance; // 返回优化后的实例
  }
  cc__extends(_ctor, t);
  _ctor.prototype.start = function () {
    // 调用父类的start方法
    t.prototype.start.call(this);

    // 获取RankMgrScript组件
    this.RankMgrScript = this.node.getComponent(s.default);

    // 获取排名信息
    this.data = this.RankMgrScript.getRankInfo();

    // 显示地区
    this.showDiQu();
  };
  _ctor.prototype.showDiQu = function () {
    // 创建一个上下文的引用
    var context = this;

    // 随机打乱城市排名信息
    this.data.cityRankInfo.sort(function () {
      return Math.random() - 0.5;
    });

    // 定义处理排名信息的函数
    var createCityRankItem = function (index) {
      var rankInfo = context.data.cityRankInfo[index];
      var cityNode = cc.instantiate(context.diquObjPrefab); // 实例化地区对象
      cityNode.parent = context.content; // 设置父节点

      // 设置子节点标签的城市名称
      cityNode.getChildByName("label").getComponent(cc.Label).string = rankInfo.cityName;

      // 添加触摸事件
      cityNode.on(cc.Node.EventType.TOUCH_END, function (event) {
        context.creatorObjClickEvent(event, cityNode, rankInfo);
      });
    };

    // 遍历城市排名信息并创建显示项
    for (var index = 0; index < this.data.cityRankInfo.length; index++) {
      createCityRankItem(index);
    }
  };
  _ctor.prototype.creatorObjClickEvent = function (t, e, o) {
    // 播放点击音效
    zqcc_OverallSystem.mgrs().soundMgr.playSound("click");

    // 获取子节点
    var selectNode = e.getChildByName("select");
    var labelNode = e.getChildByName("label");

    // 如果已有选择的地区，更新其状态
    if (this.curSelectDiQu !== null) {
      this.curSelectDiQu.getChildByName("select").active = false; // 隐藏原选中项的选择状态
      this.curSelectDiQu.getChildByName("label").color = new cc.Color().fromHEX("#312c2c"); // 恢复颜色
    }

    // 更新当前选择的地区和数据
    this.curSelectDiQu = e;
    this.curSelectDiQuData = o;

    // 显示新选中的地区状态
    selectNode.active = true; // 显示选择状态
    labelNode.color = new cc.Color().fromHEX("#f0d29c"); // 更新颜色
  };
  _ctor.prototype.selectDiQu = function () {
    // 播放点击音效
    $zqcc_OverallSystem.mgrs().soundMgr.playSound("click");

    // 如果当前有选中的地区
    if (this.curSelectDiQu !== null) {
      // 获取用户数据并更新城市信息
      var userData = $zqcc_OverallSystem.sers().userSrv.getUserData();
      userData.city = this.curSelectDiQuData;

      // 设置更新后的用户数据
      $zqcc_OverallSystem.sers().userSrv.setUserData(userData);

      // 调用关闭回调（如果存在）
      if (this.pageData.closeCall) {
        this.pageData.closeCall();
      }

      // 关闭地区选择
      this.closeSelectDiQu();
    } else {
      // 如果没有选中的地区，直接关闭地区选择
      this.closeSelectDiQu();
    }
  };
  _ctor.prototype.closeSelectDiQu = function () {
    $zqcc_OverallSystem.mgrs().soundMgr.playSound("click");
    this.close();
  };
  cc__decorate([ccp_property({
    type: cc.Node,
    displayName: "内容挂载节点"
  })], _ctor.prototype, "content", undefined);
  cc__decorate([ccp_property({
    type: cc.Prefab,
    displayName: "地区物品的预制体"
  })], _ctor.prototype, "diquObjPrefab", undefined);
  return cc__decorate([ccp_ccclass], _ctor);
}(l.default);
exports.default = def_selectArea;